using System;
using System.Collections;

namespace Eshouse.Entity
{
	

	/// <summary>
	/// Information object for NHibernate mapped table 'Information'.
	/// </summary>
	public class Information
	{
		#region Member Variables
		
		protected int _id;
		protected string _infName;
		protected string _infSource;
		protected string _infKeys;
		protected string _infContent;
		protected DateTime _infReleasedTime;
		protected DicTable _infReleasedState;
		protected DicTable _infCategory;

		#endregion

		#region Constructors

		public Information() { }

		public Information( string infName, string infSource, string infKeys, string infContent, DateTime infReleasedTime, DicTable infReleasedState, DicTable infCategory )
		{
			this._infName = infName;
			this._infSource = infSource;
			this._infKeys = infKeys;
			this._infContent = infContent;
			this._infReleasedTime = infReleasedTime;
			this._infReleasedState = infReleasedState;
			this._infCategory = infCategory;
		}

		#endregion

		#region Public Properties

		public virtual int Id
		{
			get {return _id;}
			set {_id = value;}
		}

		public virtual  string InfName
		{
			get { return _infName; }
			set
			{
				if ( value != null && value.Length > 64)
					throw new ArgumentOutOfRangeException(" Invalid value for InfName", value, value.ToString());
				_infName = value;
			}
		}

		public virtual  string InfSource
		{
			get { return _infSource; }
			set
			{
				if ( value != null && value.Length > 128)
					throw new ArgumentOutOfRangeException(" Invalid value for InfSource", value, value.ToString());
				_infSource = value;
			}
		}

		public virtual  string InfKeys
		{
			get { return _infKeys; }
			set
			{
				if ( value != null && value.Length > 64)
					throw new ArgumentOutOfRangeException(" Invalid value for InfKeys", value, value.ToString());
				_infKeys = value;
			}
		}

		public virtual  string InfContent
		{
			get { return _infContent; }
			set
			{
				if ( value != null && value.Length > 255)
					throw new ArgumentOutOfRangeException(" Invalid value for InfContent", value, value.ToString());
				_infContent = value;
			}
		}

		public virtual  DateTime InfReleasedTime
		{
			get { return _infReleasedTime; }
			set { _infReleasedTime = value; }
		}

		public virtual DicTable Inf_ReleasedState
		{
			get { return _infReleasedState; }
			set { _infReleasedState = value; }
		}

		public virtual DicTable Inf_Category
		{
			get { return _infCategory; }
			set { _infCategory = value; }
		}

		

		#endregion
	}
	
}